// Genetic Reverse the contents of an array
// By Ben 07/10/2018

#include <iostream>
#include <time.h>
using namespace std;

template<typename T>
void PrintArray(T *nums, int size){
	for (int i = 0; i < size; i++){
		std::cout << nums[i] << " ";
	}
	std::cout << endl;
}

template<typename T>
void ArrayRewind(T *nums, int size){
	int i = 0;
	T t;

	for (i = 0; i < size / 2; i++){
		//Swap the items in the array
		t = nums[size - i - 1];
		nums[size - i - 1] = nums[i];
		nums[i] = t;
	}
}

int main(){

	int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,16 };
	int len = sizeof(nums) / sizeof(int);

	std::cout << "Original Array: ";
	PrintArray<int>(nums, len);
	std::cout << "Rewind array: ";
	ArrayRewind<int>(nums, len);
	PrintArray<int>(nums, len);

	system("pause");
	return 0;
}